Дан массив n
× m. Поверните его на 90° по часовой
стрелке.
Вход. В первой строке даны натуральные числа n и m
(1 ≤ n, m ≤ 50).
В следующих n строках содержится
по m неотрицательных
чисел, каждое из которых не превышает 109 – элементы массива.
Выход. Выведите полученный массив в том же формате, что и во
входных данных.
|
Пример
входа |
Пример
выхода |
3 41 2 3 45 6 7 8
9 10 11 12 |
4 3 9 5 1 10 6 2 11 7 3 12 8 4 |
двумерный
массив
Анализ алгоритма
При повороте матрицы a на 90 градусов
по часовой стрелке элемент с координатами (i,
j) переходит в элемент матрицы b
с координатами (j, n – i
– 1).
Если исходная матрица a
имеет размер n × m, то полученная матрица b
будет иметь
размер m × n. Индексация элементов обеих матриц
начинается с 0.

Реализация алгоритма
Объявим входной массив
a и результирующий, перевернутый массив b.
#define MAX 55
int a[MAX][MAX], b[MAX][MAX];
Читаем входные данные.
scanf("%d %d",&n,&m);
for(i = 0; i < n; i++)
for(j = 0; j < m; j++)
scanf("%d",&a[i][j]);
Переворачиваем массив а и записываем результат в b.
for(i = 0; i < n; i++)
for(j = 0; j < m; j++)
b[j][n-i-1] = a[i][j];
Выводим перевернутый массив b.
printf("%d %d\n",m,n);
for(i = 0; i < m; i++)
{
for(j = 0; j
< n; j++)
printf("%d
",b[i][j]);
printf("\n");
}